// const main = {
//   name: 'jscoder',
//   age: 22
// }
// const target = new Proxy(main, {
//   get(target, property) {
//     if (target[property]) {
//       return target[property];
//     } else {
//       return new Error(`Property "${property}" does not exist`);
//     }
//   }
// });

// console.log(target.location);

// const red = () => {
//   console.log("red");
// }

// const green = () => {
//   console.log("green");
// }

// const yellow = () => {
//   console.log("yellow");
// }

// const prev = {
//   red: [3000, red],
//   green: [1000, green],
//   yellow: [2000, yellow]
// }

// const sleep = (time) => {
//   return new Promise((resolve) => {
//     setTimeout(() => {
//       resolve(true);
//     }, time);
//   });
// }

// const actuator = async () => {
//   let marked = 0;
//   while (marked < 3) {
//     const key = Object.keys(prev)[marked];
//     if (prev[key]) {
//       const [time, fnCallback] = prev[key];
//       await sleep(time);
//       fnCallback();
//       marked = marked === 2
//         ? 0 : marked + 1;
//     }
//   }
// }

// actuator();
const fn = () => {
  console.log(soa)
}

const ts = async () => {
  try {
    await fn()
    console.log("909");
  } catch (e) {
    console.log(e);
  }
}
ts()